<?php //
include_once("Conexion.php");

//Declaracion
class M_Presentacion {
    //Variable de la clase
    private $id_Presentacion;
    private $id_producto;
    private $id_tipopresentacion;
    private $id_tipoprecio;
    private $precio;
    private $usuCreac;
    private $usuModif;
    
     //Metodo utilizado para obtener todos los Roles
    function searchPresentacion_UNO() {
        //Le deciamos que la locacion es lenguaje español
        setlocale(LC_CTYPE, 'es');
        //La sentencia a ejecutar
        $sql="select p.id_presentacion as idpresentacion,p.id_producto as idproducto,
        p.id_presentacion_tipo as idtipopresentacion,tp.nombre as nomtipopresentacion,p.id_precio_tipo as idtipoprecio, tpr.nombre as nomtipoprecio , p.precio as precio
from tbl_presentacion p 
join tbl_presentacion_tipo tp on p.id_presentacion_tipo = tp.id_presentacion_tipo
join tbl_precio_tipo tpr on p.id_precio_tipo = tpr.id_precio_tipo 
where p.id_producto = $this->id_producto   and p.eliminado = false";
        
        
        try {
            //Creamos un objeto de la clase conexion
            $miconexion = new Conexion();
            //Obtenemos la conexion
            $cn = $miconexion->conectar();
            //Ejecutamos la sentencia
            $rs = pg_query($cn,$sql);
            //Creamos un array que almacenara los datos de la sentencia
            $registros = array();
            //Recorremos el resultado de la consulta y lo almacenamos en el array
            while ($reg = pg_fetch_array($rs)) {
                array_push($registros, $reg);
            }
            //Liberamos recursos
            pg_free_result($rs);
            pg_close($cn);
        } catch (exception $e) {
            try {
                pg_free_result($rs);
            } catch (exception $e) {

            }
            try {
                pg_close($cn);
            } catch (exception $e) {

            }
        }
        return $registros;
    }
    //Metodo utilizado para obtener todos los Roles
    function searchProductos_All() {
        //Le deciamos que la locacion es lenguaje español
        setlocale(LC_CTYPE, 'es');
        //La sentencia a ejecutar
        $sql = " SELECT * FROM tbl_producto where eliminado=false ";
        try {
            //Creamos un objeto de la clase conexion
            $miconexion = new Conexion();
            //Obtenemos la conexion
            $cn = $miconexion->conectar();
            //Ejecutamos la sentencia
            $rs = pg_query($cn,$sql);
            //Creamos un array que almacenara los datos de la sentencia
            $registros = array();
            //Recorremos el resultado de la consulta y lo almacenamos en el array
            while ($reg = pg_fetch_array($rs)) {
                array_push($registros, $reg);
            }
            //Liberamos recursos
            pg_free_result($rs);
            pg_close($cn);
        } catch (exception $e) {
            try {
                pg_free_result($rs);
            } catch (exception $e) {

            }
            try {
                pg_close($cn);
            } catch (exception $e) {

            }
        }
        return $registros;
    }
    
    function searchProductosxSubRubro($codigo) {
        //Le deciamos que la locacion es lenguaje español
        setlocale(LC_CTYPE, 'es');
        //La sentencia a ejecutar
        $sql = " SELECT * FROM tbl_producto where id_subrubro = $codigo  ";
        try {
            //Creamos un objeto de la clase conexion
            $miconexion = new Conexion();
            //Obtenemos la conexion
            $cn = $miconexion->conectar();
            //Ejecutamos la sentencia
            $rs = pg_query($cn,$sql);
            //Creamos un array que almacenara los datos de la sentencia
            $registros = array();
            //Recorremos el resultado de la consulta y lo almacenamos en el array
            while ($reg = pg_fetch_array($rs)) {
                array_push($registros, $reg);
            }
            //Liberamos recursos
            pg_free_result($rs);
            pg_close($cn);
        } catch (exception $e) {
            try {
                pg_free_result($rs);
            } catch (exception $e) {

            }
            try {
                pg_close($cn);
            } catch (exception $e) {

            }
        }
        return $registros;
    }
    
   //Metodo utilizado para insertar una Rol en la base de datos
    function insertPresentacion() {
        $rpta;
        try {
            //Creamos un objeto de la clase conexion
            $miconexion = new Conexion();
            //Obtenemos la conexion
            $cn = $miconexion->conectar();
            //Comenzamos la transaccion
            pg_query($cn,"BEGIN");
            //Elaboramos la sentencia
            $sql="INSERT INTO tbl_presentacion(
            id_producto, id_presentacion_tipo, precio, creacion, 
            creadopor, actualizado, actualizadopor, estado, eliminado, id_precio_tipo)
    VALUES ($this->id_producto,$this->id_tipopresentacion,$this->precio,now(),'$this->usuCreac',null 
            ,null,null,false, $this->id_tipoprecio)";
            
            //Ejecutamos la sentencia
            $result = pg_query($cn,$sql);
            if (!$result) {
                //Si no obtiene resultados anulamos la transaccion
                pg_query($cn,"ROLLBACK");
                $rpta = false;
            } else {
                //Si obtiene resultados confirmamos la transaccion
                pg_query($cn,"COMMIT");
                $rpta = true;
            }
            //Cerramos la conexion
            pg_close($cn);
        } catch (exception $e) {
            try {
                pg_query($cn,"ROLLBACK");
            } catch (exception $e1) {

            }
            try {
                pg_close($cn);
            } catch (exception $e1) {

            }
            $rpta = false;
        }
        return $rpta;
    }
    
    //Metodo utilizado para actualizar un ROL
    function updateRol() {

            //Creamos un objeto de la clase conexion
            $miconexion = new Conexion();
            //Obtenemos la conexion
            $cn = $miconexion->conectar();
            //Comenzamos la transaccion
            //mysql_query("BEGIN", $cn);
            //Elaboramos la sentencia
            $sql = " update tbl_rol set nombre = '$this->nombre', descripcion = '$this->descripcion', usuario_modif = '$this->usuModif', fecha_modif = now() where id_rol = $this->id_Rol ";
            //Ejecutamos la sentencia
            $result = pg_query($cn,$sql);
           
            if (!$result) {
                //Si no obtiene resultados anulamos la transaccion
            //    mysql_query("ROLLBACK", $cn);
                $rpta = false;
            } else {
                //Si obtiene resultados confirmamos la transaccion
              //  mysql_query("COMMIT", $cn);
                $rpta = true;
            }
            //Cerramos la conexion
            pg_close($cn);
        
        
        return $rpta;
    }
    //Metodo utilizado para actualizar un ROL
    function deletePresentacion() {
        $rpta;
        try {
            //Creamos un objeto de la clase conexion
            $miconexion = new Conexion();
            //Obtenemos la conexion
            $cn = $miconexion->conectar();
            //Comenzamos la transaccion
            pg_query($cn, "BEGIN");
            //Elaboramos la sentencia
            $sql = " delete from tbl_presentacion where id_producto = $this->id_producto ";
            //Ejecutamos la sentencia
            $result = pg_query($cn,$sql);
            $rpta;
            if (!$result) {
                //Si no obtiene resultados anulamos la transaccion
                pg_query($cn,"ROLLBACK");
                $rpta = false;
            } else {
                //Si obtiene resultados confirmamos la transaccion
                pg_query($cn,"COMMIT");
                $rpta = true;
            }
            //Cerramos la conexion
            pg_close($cn);
        } catch (exception $e) {
            try {
                pg_query("ROLLBACK", $cn);
            } catch (exception $e1) {

            }
            try {
                pg_close($cn);
            } catch (exception $e1) {

            }
            $rpta = false;
        }
        return $rpta;
    }
    
    //Metodo utilizado para obtener un Rol
    function BuscarProducto_UNO() {
        //Le deciamos que la locacion es lenguaje español
        setlocale(LC_CTYPE, 'es');
        //La sentencia a ejecutar
        $sql = " select * from tbl_producto where id_producto=$this->id_Producto and eliminado = false ";
      
            //Creamos un objeto de la clase conexion
            $miconexion = new Conexion();
            //Obtenemos la conexion
            $cn = $miconexion->conectar();
            //Ejecutamos la sentencia
            $rs = pg_query($cn,$sql);
            //Creamos un array que almacenara los datos de la sentencia
            $registros = array();
            //Recorremos el resultado de la consulta y lo almacenamos en el array
            while ($reg = pg_fetch_array($rs)) {
                array_push($registros, $reg);
            }
            //Liberamos recursos
           // pg_free_result($rs);
            pg_close($cn);
    
        return $registros;
    }
  

    function setId_Presentacion($id_presentacion) {
        $this->id_Presentacion = $id_presentacion;
    }
    
    function setId_Producto($id_producto) {
        $this->id_producto = $id_producto;
    }
    function setId_TipoPresentacion($id_tipopresentacion) {
        $this->id_tipopresentacion = $id_tipopresentacion;
    }
    
    function setId_TipoPrecio($id_tipoprecio) {
        $this->id_tipoprecio = $id_tipoprecio;
    }
    function setPrecio($precio) {
        $this->precio = $precio;
    }


    
    function setUsuCreac($usuario) {
        $this->usuCreac = $usuario;
    }
    
    function setUsuModif($usuario) {
        $this->usuModif = $usuario;
    }
}
?>